package com.elder.business.mapper;

import java.util.List;
import com.elder.business.domain.MemberInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

/**
 * 成员信息Mapper接口
 * 
 * @author elder
 * @date 2023-11-26
 */
public interface MemberInfoMapper 
{
    /**
     * 查询成员信息
     * 
     * @param memberId 成员信息主键
     * @return 成员信息
     */
    public MemberInfo selectMemberInfoByMemberId(Long memberId);

    /**
     * 查询成员信息列表
     * 
     * @param memberInfo 成员信息
     * @return 成员信息集合
     */
    public List<MemberInfo> selectMemberInfoList(MemberInfo memberInfo);

    /**
     * 新增成员信息
     * 
     * @param memberInfo 成员信息
     * @return 结果
     */
    public int insertMemberInfo(MemberInfo memberInfo);

    /**
     * 修改成员信息
     * 
     * @param memberInfo 成员信息
     * @return 结果
     */
    public int updateMemberInfo(MemberInfo memberInfo);

    /**
     * 删除成员信息
     * 
     * @param memberId 成员信息主键
     * @return 结果
     */
    public int deleteMemberInfoByMemberId(Long memberId);

    /**
     * 批量删除成员信息
     * 
     * @param memberIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMemberInfoByMemberIds(Long[] memberIds);

    public List<MemberInfo> getMemberList(@Param("memberName") String memberName,@Param("memberType") Integer memberType);

    public List<MemberInfo> getMemberUserList(@Param("userIds") List<Long> userIds);

    public MemberInfo getMember(Long userId);

    List<MemberInfo> getMemberListByMemberIds(@Param("memberIds") List<Long> memberIds);

    List<MemberInfo> getMemberListByDept(@Param("memberType") Integer memberType);

    MemberInfo getMemberByMemberId(@Param("memberId") Long memberId);

    List<Long> getMemberListByMemberName(@Param("memberName") String memberName);

    Integer updateMemberState(@Param("memberId") Long memberId, @Param("state") Integer state);

    List<MemberInfo> getMemberDept(@Param("memberIdList") List<Long> memberIdList);
}
